import copy
import json
import os

# convenience when dealing with json
true, false = True, False

def get_blob(blob):
    return copy.deepcopy(blob)


class TestWriter(object):
    def __init__(self, test_dir):
        self.test_dir = test_dir

    def write_test_file(self, name, schema, data, throws):
        test_filename = os.path.join(
            self.test_dir,
            'schematest-%s-%s.json' % (schema, name)
        )
        if os.path.isfile(test_filename):
            raise ValueError('Test with that name and schema already exists: {}'.format(test_filename))

        with open(test_filename, 'w+') as fh:
            json.dump(
                {"schema": schema, "throws": throws, "data": data},
                fh,
                indent=True
            )
